통신 계층
1. 개요
1. 개요
통신 계층은 복잡한 네트워크 데이터 통신 과정을 논리적 단위로 분할한 구조적 모델의 한 단계를 의미한다. 대표적인 모델로는 국제 표준화 기구가 제안한 OSI 모델과 실제 인터넷의 기반이 되는 TCP/IP 모델이 있다. 이러한 계층화의 핵심 목적은 전체 통신 시스템을 모듈화하여 설계와 구현을 단순화하고, 각 부분의 문제 해결을 용이하게 하는 데 있다.
각 통신 계층은 독립적이고 명확한 기능을 담당하며, 계층 사이에는 표준화된 인터페이스가 정의되어 있다. 하위 계층은 상위 계층에 특정 서비스를 제공하는 관계를 형성한다. 예를 들어, 전송 계층은 데이터의 신뢰성 있는 전달을 담당하고, 그 아래의 네트워크 계층은 패킷의 논리적 주소 지정과 경로 설정을 책임진다. 이처럼 기능을 분리함으로써, 한 계층의 기술 변화가 다른 계층에 미치는 영향을 최소화할 수 있다.
데이터는 송신 측에서 상위 계층에서 하위 계층으로 이동하며 각 계층의 특정 프로토콜에 따른 제어 정보(헤더)가 추가되는 캡슐화 과정을 거친다. 수신 측에서는 반대로 하위 계층에서 상위 계층으로 올라가며 추가된 정보를 제거하는 역캡슐화 과정을 통해 원본 데이터를 복원한다. 이 과정을 통해 데이터는 최종 목적지에 정확하게 전달될 수 있다.
2. 계층화의 필요성
2. 계층화의 필요성
계층화는 복잡한 네트워크 통신 시스템을 설계하고 관리하기 위한 근본적인 방법론이다. 현대의 통신은 다양한 하드웨어와 소프트웨어, 그리고 수많은 프로토콜이 얽혀 이루어지는데, 이러한 복잡성을 그대로 다루는 것은 거의 불가능하다. 계층 모델은 이 복잡한 과정을 기능별로 나누어 여러 개의 추상화된 단계, 즉 계층으로 구성한다. 각 계층은 명확하게 정의된 독립적인 임무를 가지며, 상하위 계층과는 표준화된 인터페이스를 통해 소통한다. 이렇게 모듈화된 구조는 시스템 전체의 설계와 이해를 훨씬 용이하게 만든다.
계층화의 핵심 이점은 문제의 국소화와 개발의 독립성에 있다. 통신 과정에서 오류가 발생했을 때, 계층별로 기능이 분리되어 있으면 문제가 발생한 특정 계층을 집중적으로 조사하고 해결할 수 있다. 예를 들어 웹 브라우저가 인터넷에 접속하지 못할 때, 네트워크 계층의 IP 주소 설정 문제인지, 데이터 링크 계층의 이더넷 케이블 문제인지, 아니면 응용 계층의 프록시 서버 설정 문제인지를 계층별로 차례로 확인하면 된다. 또한, 하위 계층의 기술이 변경되더라도 표준 인터페이스를 유지하는 한 상위 계층의 응용 프로그램은 수정 없이 동작할 수 있어 호환성과 발전성을 보장한다.
이러한 구조는 캡슐화와 역캡슐화 과정을 통해 구현된다. 상위 계층의 데이터는 하위 계층으로 전달될 때 해당 계층의 제어 정보가 담긴 헤더 (또는 트레일러)로 감싸진다. 이는 마치 편지를 봉투에 넣고, 그 봉투를 택배 상자에 넣고, 상자에 운송장을 붙이는 과정과 유사하다. 각 계층은 자신의 계층에 해당하는 헤더만을 이해하고 처리하며, 최종 수신측에서는 반대 순서로 헤더를 벗겨내며 원본 데이터를 복원한다. 이 과정을 통해 각 계층은 투명하게 자신의 역할을 수행하면서도 전체적인 데이터 전송을 가능하게 한다.
3. OSI 7계층 모델
3. OSI 7계층 모델
3.1. 물리 계층
3.1. 물리 계층
물리 계층은 OSI 7계층 모델의 최하위, 즉 제1계층에 해당한다. 이 계층의 주요 역할은 실제 데이터를 전기적, 기계적, 기능적, 절차적 특성에 맞춰 물리적 매체를 통해 비트 스트림으로 전송하는 것이다. 즉, 논리적인 데이터를 물리적인 신호로 변환하여 전송하고, 수신 측에서는 이 물리적 신호를 다시 비트로 변환하는 것이 핵심 기능이다.
물리 계층은 데이터의 의미나 구조에는 전혀 관여하지 않으며, 오직 비트의 전송만을 책임진다. 이 계층에서 정의되는 사항에는 전압, 전류, 핀 배열, 케이블 사양, 커넥터 형식, 전송 속도, 신호 방식 등이 포함된다. 대표적인 물리 계층 장비로는 허브, 리피터, 케이블, 커넥터 등이 있으며, 모뎀도 아날로그 신호와 디지털 신호를 변환하는 물리 계층 장치에 해당한다.
이 계층에서 사용되는 프로토콜과 표준은 매우 다양하다. 이더넷의 RJ-45 커넥터와 트위스티드 페어 케이블, 광섬유 통신을 위한 SFP 모듈, USB나 HDMI와 같은 직렬 통신 규격 등이 모두 물리 계층의 표준에 속한다. 또한 무선 LAN에서 사용되는 전파의 주파수 대역과 변조 방식도 이 계층에서 정의된다.
물리 계층의 정상적인 동작은 상위 계층인 데이터 링크 계층이 제대로 기능할 수 있는 기초를 제공한다. 물리적 연결에 문제가 발생하면 상위 계층의 모든 논리적 프로토콜이 무용지물이 되므로, 네트워크 문제 해결 시 가장 먼저 확인해야 할 부분이기도 하다.
3.2. 데이터 링크 계층
3.2. 데이터 링크 계층
데이터 링크 계층은 OSI 7계층 모델의 두 번째 계층으로, 물리 계층을 통해 전송되는 비트의 흐름을 신뢰할 수 있는 논리적 링크로 변환하는 역할을 한다. 이 계층의 주요 임무는 동일한 네트워크 세그먼트 내에서 직접 연결된 노드들 사이의 데이터 전송을 관리하는 것이다. 이를 위해 프레임이라는 단위로 데이터를 구성하고, 물리적 주소인 MAC 주소를 사용하여 통신 대상을 식별한다.
데이터 링크 계층의 핵심 기능은 프레임의 생성, 전송, 수신 및 오류 검출이다. 송신 측에서는 상위 계층인 네트워크 계층에서 받은 패킷에 물리적 주소 정보와 오류 검출 코드 등을 담은 헤더와 트레일러를 추가하여 프레임을 만든다. 수신 측에서는 이 프레임을 해석하여 오류가 없는지 확인한 후, 헤더와 트레일러를 제거하고 순수한 데이터를 네트워크 계층으로 올려보낸다. 대표적인 오류 검출 방법으로는 CRC가 널리 사용된다.
이 계층은 또한 매체 접근 제어를 담당하여, 여러 장치가 공유하는 하나의 전송 매체에 동시에 접근할 때 발생할 수 있는 충돌을 방지하거나 관리한다. 이더넷에서 사용되는 CSMA/CD 방식이나, 무선 랜의 CSMA/CA 방식이 대표적인 매체 접근 제어 프로토콜이다. 데이터 링크 계층은 일반적으로 네트워크 인터페이스 카드의 펌웨어나 스위치와 같은 장비에 구현된다.
TCP/IP 4계층 모델에서는 데이터 링크 계층의 기능이 네트워크 액세스 계층에 포함된다. OSI 모델의 데이터 링크 계층은 다시 LLC와 MAC 두 개의 부계층으로 세분화되어 설명되기도 한다. 이 계층의 표준화된 동작 덕분에 서로 다른 하드웨어를 가진 장치들도 동일한 네트워크 내에서 원활하게 통신할 수 있다.
3.3. 네트워크 계층
3.3. 네트워크 계층
네트워크 계층은 OSI 모델의 세 번째 계층이며, TCP/IP 모델에서는 인터넷 계층에 해당한다. 이 계층의 주요 임무는 서로 다른 네트워크 간에 데이터 패킷을 최종 목적지까지 안정적으로 전달하는 경로를 설정하고 선택하는 것이다. 즉, 라우팅을 담당하여 논리적 주소 체계를 기반으로 데이터의 이동 경로를 결정한다.
이 계층에서 사용되는 대표적인 논리적 주소는 IP 주소이다. 네트워크 계층은 상위 계층인 전송 계층으로부터 받은 데이터 세그먼트에 발신지와 목적지의 IP 주소 정보를 담은 헤더를 추가하여 패킷을 생성한다. 이 패킷은 라우터와 같은 네트워크 장비에 의해 목적지 네트워크로 전달되며, 라우터는 패킷의 IP 헤더를 확인하고 내부의 라우팅 테이블을 참조하여 다음 경로를 결정한다.
네트워크 계층의 핵심 프로토콜로는 인터넷 프로토콜(IP)이 있다. IP는 비연결형, 비신뢰성 서비스를 제공하는데, 이는 각 패킷이 독립적으로 경로를 선택하여 전송되며 패킷의 순서 보장이나 손실 복구를 책임지지 않음을 의미한다. 이러한 신뢰성 보장은 상위 계층인 전송 계층의 TCP와 같은 프로토콜이 담당한다. 네트워크 계층의 다른 주요 프로토콜에는 경로 정보를 교환하는 라우팅 프로토콜(예: OSPF, BGP)과 논리적 주소를 물리적 주소로 변환하는 ARP 등이 있다.
3.4. 전송 계층
3.4. 전송 계층
전송 계층은 OSI 7계층 모델의 4계층이자 TCP/IP 4계층 모델의 3계층에 해당하는 핵심 계층이다. 이 계층의 주요 임무는 출발지와 목적지의 응용 프로그램 간에 신뢰할 수 있고 효율적인 데이터 전송 서비스를 제공하는 것이다. 즉, 네트워크 계층이 호스트 대 호스트의 논리적 연결을 담당한다면, 전송 계층은 그 위에서 동작하는 특정 프로세스(예: 웹 브라우저, 이메일 클라이언트) 간의 논리적 연결을 관리한다.
전송 계층의 가장 중요한 기능은 종단 간 통신을 보장하는 것이다. 이를 위해 흐름 제어, 오류 제어, 혼잡 제어 같은 메커니즘을 구현한다. 흐름 제어는 수신자의 처리 속도를 고려해 데이터 전송 속도를 조절하며, 오류 제어는 패킷 손실이나 변조를 탐지하고 복구한다. 혼잡 제어는 네트워크 전체의 과부하를 방지한다. 이러한 제어 기능의 구현 방식에 따라 대표적인 두 가지 프로토콜이 등장했다.
가장 널리 사용되는 전송 계층 프로토콜은 TCP와 UDP이다. TCP는 연결 지향적이고 신뢰성 높은 전송을 보장하는 프로토콜로, 데이터 전송 전에 3방향 핸드셰이크를 통해 연결을 설정하고, 확인 응답과 재전송을 통해 데이터의 정확한 전달을 책임진다. 반면, UDP는 비연결형이고 신뢰성보다는 속도와 실시간성이 중요한 서비스에 사용된다. UDP는 간단한 헤더 구조로 오버헤드가 적어 DNS 질의나 실시간 멀티미디어 스트리밍에 적합하다.
이 계층은 포트 번호를 사용하여 하나의 IP 주소를 가진 호스트 내에서 여러 개의 응용 프로그램 세션을 구분한다. 예를 들어, 웹 서버는 일반적으로 80번 포트를, 메일 서버는 25번 포트를 사용한다. 이렇게 전송 계층은 하위 계층이 제공하는 기본적인 데이터 전송 기능을 바탕으로, 최종 응용 프로그램이 필요로 하는 질 높은 통신 서비스를 완성하는 역할을 한다.
3.5. 세션 계층
3.5. 세션 계층
세션 계층은 OSI 모델의 다섯 번째 계층으로, 통신 세션의 설정, 유지, 종료를 관리하는 역할을 한다. 이 계층은 전송 계층이 제공하는 안정적인 데이터 전송 서비스를 바탕으로, 두 시스템 간의 대화 구조를 제어한다. 세션 계층은 통신이 시작되고 끝나는 시점을 관리하며, 데이터 교환 중에 발생할 수 있는 문제를 복구하는 기능을 제공한다.
세션 계층의 주요 기능은 대화 관리와 동기화이다. 대화 관리에서는 전이중 통신이나 반이중 통신과 같은 통신 방식을 결정하고, 어떤 쪽이 언제 데이터를 전송할지 제어한다. 동기화 기능은 장시간 통신 중에 특정 지점을 동기점으로 설정하여, 전송 오류가 발생했을 때 마지막 동기점부터 통신을 재개할 수 있게 한다. 이는 대용량 파일 전송 시 매우 유용하다.
이 계층에서 사용되는 대표적인 프로토콜로는 RPC나 NetBIOS 등이 있다. 그러나 현대의 많은 인터넷 프로토콜 스택에서는 세션 계층의 기능이 응용 계층 프로토콜 내에 통합되어 구현되는 경우가 많다. 예를 들어, HTTP/1.1의 지속 연결이나 TLS 핸드셰이크는 세션 설정 및 관리를 담당한다.
따라서 세션 계층은 논리적인 연결인 '세션'을 관리함으로써, 응용 프로그램들이 효율적이고 구조화된 대화를 나눌 수 있는 기반을 마련한다. 이는 최종 사용자에게 투명하게 작동하며, 안정적인 통신 환경을 보장하는 데 기여한다.
3.6. 표현 계층
3.6. 표현 계층
표현 계층은 OSI 모델의 여섯 번째 계층이다. 이 계층의 주요 역할은 응용 계층에서 사용하는 데이터의 표현 방식을 변환하는 것이다. 즉, 서로 다른 시스템 간에 데이터를 교환할 때, 데이터의 구조나 형식, 암호화, 압축 등을 처리하여 상대방 시스템이 이해할 수 있는 형태로 변환한다.
표현 계층은 구체적으로 데이터의 암호화와 복호화, 압축과 압축 해제, 그리고 데이터 형식 변환을 담당한다. 예를 들어, EBCDIC로 인코딩된 데이터를 ASCII로 변환하거나, JPEG나 MPEG와 같은 멀티미미디어 형식으로 데이터를 변환하는 작업이 이 계층에서 이루어진다. 이를 통해 응용 계층은 데이터의 내부 표현 방식에 신경 쓰지 않고 통신할 수 있다.
표현 계층의 이러한 기능은 이기종 시스템 간의 통신에서 특히 중요하다. 서로 다른 하드웨어 아키텍처나 운영체제를 가진 컴퓨터들이 데이터를 주고받을 때, 데이터 표현의 차이로 인해 발생할 수 있는 문제를 해결한다. 결과적으로 응용 계층 프로토콜이 데이터의 의미(세맨틱스)에 집중하는 동안, 표현 계층은 데이터의 문법(신택스)을 처리한다고 볼 수 있다.
현대의 대부분의 네트워크 프로토콜 스택은 TCP/IP 모델을 따르며, TCP/IP 모델에는 표현 계층이 명시적으로 존재하지 않는다. 대신 표현 계층의 기능은 TCP/IP의 응용 계층 프로토콜 내에서 구현된다. 예를 들어, TLS는 보안 기능을, MIME은 데이터 형식 변환 기능을 응용 계층에서 직접 수행한다.
3.7. 응용 계층
3.7. 응용 계층
응용 계층은 OSI 모델의 최상위 계층이자 TCP/IP 모델의 최상위 계층에 해당한다. 이 계층은 최종 사용자 또는 응용 프로그램이 네트워크를 통해 서비스를 이용할 수 있도록 하는 인터페이스와 프로토콜을 제공하는 것이 주된 역할이다. 즉, 사용자가 직접 인식하고 상호작용하는 이메일, 웹 브라우징, 파일 전송 등의 서비스가 이 계층에서 구현된다.
응용 계층의 주요 기능은 다양한 응용 서비스를 위한 프로토콜을 정의하고 실행하는 것이다. 대표적인 프로토콜로는 웹 접속을 위한 HTTP, HTTPS, 파일 전송을 위한 FTP, 이메일 송수신을 위한 SMTP, POP3, IMAP, 도메인 이름 변환을 위한 DNS 등이 있다. 이러한 프로토콜들은 표준화된 메시지 형식과 통신 규칙을 정의하여, 서로 다른 시스템 간에 원활한 데이터 교환을 가능하게 한다.
응용 계층은 사용자로부터의 데이터를 하위 계층인 표현 계층(OSI 모델) 또는 직접 전송 계층(TCP/IP 모델)이 이해할 수 있는 형태로 전달하는 책임을 진다. 반대로, 하위 계층에서 전달받은 데이터를 최종 사용자가 이해할 수 있는 형태(예: 웹 페이지, 이메일 내용)로 변환하여 제공한다. 이 과정에서 데이터의 의미나 구문에 대한 처리는 주로 이 계층 또는 표현 계층에서 담당한다.
요약하면, 응용 계층은 네트워크 서비스의 최종 출입구 역할을 하며, 사용자의 요구를 네트워크 통신 요청으로 변환하고 그 결과를 다시 사용자에게 보여주는 핵심 계층이다. 모든 네트워크 기반 소프트웨어와 서비스는 이 계층의 프로토콜을 기반으로 동작한다고 볼 수 있다.
4. TCP/IP 4계층 모델
4. TCP/IP 4계층 모델
4.1. 네트워크 액세스 계층
4.1. 네트워크 액세스 계층
네트워크 액세스 계층은 TCP/IP 4계층 모델의 최하위 계층으로, 네트워크 인터페이스 계층 또는 링크 계층이라고도 불린다. 이 계층은 물리적 매체를 통해 실제 데이터 프레임을 송수신하는 역할을 담당하며, OSI 7계층 모델의 물리 계층과 데이터 링크 계층의 기능을 통합한 개념에 해당한다.
주요 기능은 네트워크 하드웨어와 직접적으로 상호작용하여 이더넷, Wi-Fi, PPP와 같은 특정 네트워크 기술을 사용해 비트 스트림을 전송하는 것이다. 이는 MAC 주소를 사용한 장치 간의 직접적인 링크 설정, 물리적 주소 지정, 그리고 오류 검출을 포함한다. 즉, 호스트가 직접 연결된 로컬 네트워크 세그먼트 내에서 데이터를 전달할 수 있게 하는 기반을 제공한다.
이 계층에서 사용되는 대표적인 프로토콜과 기술로는 유선 LAN의 근간이 되는 이더넷(IEEE 802.3), 무선 LAN 표준인 Wi-Fi(IEEE 802.11), 그리고 시리얼 통신을 위한 PPP 등이 있다. 또한 ARP 프로토콜은 이 계층에서 동작하여 IP 주소를 MAC 주소로 변환하는 역할을 수행한다.
네트워크 액세스 계층은 상위 계층인 인터넷 계층(예: IP)으로부터 받은 패킷을 해당 네트워크 매체에 맞는 프레임 형태로 캡슐화하여 전송하고, 수신된 프레임을 역캡슐화하여 패킷을 추출해 상위 계층으로 전달한다. 이는 하드웨어 의존적인 통신의 모든 세부 사항을 상위의 논리적 네트워크 프로토콜로부터 숨기는 추상화 계층으로서의 역할을 한다.
4.2. 인터넷 계층
4.2. 인터넷 계층
인터넷 계층은 TCP/IP 4계층 모델의 두 번째 계층으로, 네트워크를 통해 패킷이 출발지에서 목적지까지 정확하게 전달되도록 하는 경로 설정과 라우팅의 책임을 진다. 이 계층의 핵심 기능은 논리적 주소(IP 주소)를 사용하여 호스트와 네트워크를 식별하고, 최적의 경로를 선택하여 데이터를 전송하는 것이다. 따라서 인터넷을 비롯한 다양한 네트워크에서 데이터 전송의 핵심을 담당하는 계층이라고 할 수 있다.
이 계층에서 사용되는 대표적인 프로토콜은 인터넷 프로토콜(IP)이다. IPv4와 IPv6는 모두 이 계층에 속하며, 패킷의 주소 지정과 분할, 재조립 등의 기능을 수행한다. 또한, 경로 설정 오류를 보고하는 ICMP, 그룹 통신을 위한 IGMP 등이 함께 동작하여 인터넷 계층의 기능을 보완한다. 이 계층은 전송 계층에서 내려온 데이터 세그먼트에 IP 헤더를 추가하여 IP 패킷으로 만드는 캡슐화 과정을 거친다.
인터넷 계층은 OSI 7계층 모델의 네트워크 계층에 대응된다. 두 모델 모두 최종 목적지까지의 논리적 경로를 책임진다는 점에서 그 기능이 동일하다. 이 계층의 동작은 하위의 네트워크 액세스 계층(또는 데이터 링크 계층)에 의존하며, 상위의 전송 계층(예: TCP, UDP)에 종단 간 전송 서비스를 제공한다.
4.3. 전송 계층
4.3. 전송 계층
전송 계층은 OSI 7계층 모델의 제4계층이자 TCP/IP 4계층 모델의 제3계층에 해당한다. 이 계층의 핵심 역할은 출발지와 목적지의 응용 프로그램 사이에서 데이터의 신뢰성 있는 전송을 보장하는 것이다. 네트워크 계층이 호스트에서 호스트로의 논리적 주소 지정과 경로 설정을 담당한다면, 전송 계층은 그 위에서 동작하는 특정 프로세스나 서비스(예: 웹 브라우저, 이메일 클라이언트) 간의 논리적 연결을 관리한다.
전송 계층의 주요 기능은 종단 간 통신을 제공하고, 데이터의 흐름 제어와 오류 제어를 수행하며, 필요에 따라 혼잡 제어를 담당하는 것이다. 이를 위해 대표적으로 두 가지 프로토콜이 사용된다. 첫째는 연결 지향적이고 신뢰성 높은 전송을 보장하는 TCP이다. TCP는 데이터 전송 전 3방향 핸드셰이크를 통해 연결을 설정하고, 패킷의 순서 보장, 재전송, 확인 응답 등의 메커니즘을 사용한다. 반면, UDP는 비연결형 프로토콜로, 신뢰성보다는 낮은 지연과 빠른 전송 속도를 중시하는 서비스에 적합하다.
이 계층은 상위 계층인 세션 계층이나 응용 계층에 데이터 전송 서비스를 제공한다. 전송 계층에서 데이터는 세그먼트(TCP) 또는 데이터그램(UDP)이라는 프로토콜 데이터 단위로 캡슐화된다. 이 세그먼트에는 출발지와 목적지의 포트 번호 정보가 포함되어, 같은 호스트 내에서 여러 응용 프로그램이 동시에 네트워크를 사용할 수 있도록 다중화와 역다중화를 가능하게 한다.
4.4. 응용 계층
4.4. 응용 계층
응용 계층은 OSI 7계층 모델의 최상위 계층이며, TCP/IP 4계층 모델에서도 최상위 계층의 이름으로 사용된다. 이 계층은 최종 사용자나 응용 프로그램이 네트워크를 통해 서비스를 이용할 수 있도록 하는 인터페이스를 제공하는 것이 주된 역할이다. 즉, 사용자가 직접 인식하고 상호작용하는 프로토콜과 서비스들이 이 계층에 속한다.
OSI 모델에서 응용 계층은 파일 전송, 전자 메일, 원격 접속과 같은 특정 네트워크 서비스를 구현하는 프로토콜을 포함한다. 대표적인 예로 HTTP는 월드 와이드 웹에서 하이퍼텍스트 문서를 교환하는 데 사용되며, FTP는 파일 전송을, SMTP와 POP3는 이메일 송수신을 담당한다. 또한 DNS는 도메인 이름을 IP 주소로 변환하는 서비스를 제공한다.
TCP/IP 모델의 응용 계층은 OSI 모델의 응용 계층, 표현 계층, 세션 계층의 기능을 통합한 광의의 개념이다. 따라서 실제 네트워크 통신에서 사용되는 대부분의 애플리케이션 프로토콜은 TCP/IP 스택의 응용 계층에 위치한다고 볼 수 있다. 이 계층의 프로토콜들은 하위의 전송 계층 프로토콜(주로 TCP나 UDP)을 이용하여 데이터를 교환한다.
응용 계층의 핵심은 네트워크의 복잡한 하부 구조를 사용자에게 감추고, 직관적이고 유용한 서비스를 제공하는 데 있다. 사용자는 웹 브라우저의 주소창에 URL을 입력하거나 이메일 클라이언트에서 메일을 보내는 것처럼 간단한 동작만으로도, 하위 계층에서 이루어지는 복잡한 캡슐화와 라우팅, 신뢰성 있는 전송 과정을 의식하지 않고 네트워크 자원을 활용할 수 있게 된다.
5. 두 모델의 비교
5. 두 모델의 비교
OSI 7계층 모델과 TCP/IP 4계층 모델은 모두 네트워크 통신의 계층적 구조를 정의한 표준 모델이다. 두 모델은 계층화의 기본 목적과 원칙을 공유하지만, 계층 수와 각 계층의 범위, 그리고 실제 적용 측면에서 뚜렷한 차이를 보인다. 가장 큰 차이는 계층의 수와 추상화 수준에 있다. OSI 모델은 이론적으로 설계와 교육에 중점을 두어 통신 과정을 매우 세분화한 7개의 계층으로 구성된다. 반면, TCP/IP 모델은 실제 인터넷 프로토콜 스위트의 구현을 기반으로 하여, 유사한 기능을 가진 계층들을 통합한 4개의 계층으로 이루어져 있다.
구체적인 계층 대응 관계를 살펴보면, TCP/IP의 네트워크 액세스 계층은 OSI의 물리 계층과 데이터 링크 계층의 기능을 모두 포함한다. 인터넷 계층은 OSI의 네트워크 계층에 대응되며, IP 프로토콜이 이 계층의 핵심이다. 전송 계층은 두 모델에서 동일한 이름과 역할을 가진다. 마지막으로, TCP/IP의 응용 계층은 OSI의 세션 계층, 표현 계층, 응용 계층의 기능을 하나로 통합한 광범위한 계층이다.
두 모델의 개발 배경과 영향력도 다르다. OSI 모델은 국제 표준화 기구가 다양한 통신 시스템의 상호 운용성을 보장하기 위해 만든 개념적이고 이상적인 참조 모델이다. 이에 비해 TCP/IP 모델은 ARPANET에서 시작되어 인터넷의 급속한 성장과 함께 실질적인 산업 표준으로 자리 잡은 프로토콜 스택을 설명하는 모델이다. 따라서 현대의 네트워크 교육에서는 이론적 프레임워크로 OSI 모델을 설명하지만, 실제 인터넷 통신의 구현과 문제 해결은 대부분 TCP/IP 모델을 기준으로 이루어진다.
요약하자면, OSI 모델은 통신 과정을 이해하는 데 유용한 포괄적인 이론적 틀을 제공하는 반면, TCP/IP 모델은 오늘날 사용되는 구체적인 프로토콜들의 구조를 직접적으로 반영한 실용적인 모델이다. 네트워크 전문가는 두 모델의 차이점과 상호 관계를 정확히 이해하여, 상황에 맞게 이론과 실무를 적용할 수 있어야 한다.
6. 캡슐화와 역캡슐화
6. 캡슐화와 역캡슐화
캡슐화는 송신 측에서 데이터가 상위 계층에서 하위 계층으로 전달될 때, 각 계층의 프로토콜이 규정한 특정한 제어 정보를 데이터에 추가하는 과정이다. 이렇게 추가된 제어 정보는 헤더 또는 트레일러라고 불리며, 데이터의 정확한 전달과 처리를 위한 주소, 오류 검출 코드, 순서 번호 등의 정보를 담고 있다. 예를 들어, 전송 계층에서는 세그먼트나 데이터그램을 만들기 위해 헤더를 추가하고, 네트워크 계층에서는 패킷에 IP 주소 정보가 담긴 헤더를 덧붙인다. 이 과정을 통해 최종적으로 물리 계층을 통해 전송 가능한 프레임이나 비트 스트림이 완성된다.
역캡슐화는 수신 측에서 하위 계층에서 상위 계층으로 데이터가 전달될 때 발생하는 반대 과정이다. 수신 측은 물리적 매체를 통해 전송된 비트 스트림을 받아, 각 계층에서 해당 계층의 헤더를 분석하고 제거한 후 상위 계층으로 올려보낸다. 예를 들어, 데이터 링크 계층은 프레임의 헤더와 트레일러를 확인하여 오류를 검사한 후 네트워크 계층으로 패킷을 전달한다. 네트워크 계층은 IP 헤더를 분석하여 최종 목적지가 자신인지 확인하고, 전송 계층으로 데이터를 전송한다. 이렇게 계층을 거슬러 올라가며 헤더가 하나씩 벗겨지면, 최종적으로 원본 응용 계층 데이터만이 수신 애플리케이션에 도달하게 된다.
이 두 과정은 계층 모델의 핵심 동작 원리로, 각 계층이 독립적으로 기능하면서도 협력하여 통신을 가능하게 한다. 캡슐화와 역캡슐화를 통해 데이터는 신뢰성 있고 정확한 경로를 통해 목적지에 도달하며, 계층별로 문제를 분리하여 진단하고 해결하는 것이 용이해진다.
7. 관련 개념
7. 관련 개념
7.1. 프로토콜
7.1. 프로토콜
프로토콜은 특정 통신 계층 내에서, 동일 계층에 위치한 두 개체 간의 통신 규약을 정의한다. 즉, 송신 측과 수신 측이 같은 계층에 있을 때, 데이터를 어떻게 교환할지에 대한 일련의 규칙과 약속이다. 예를 들어, 인터넷 프로토콜(IP)은 네트워크 계층의 프로토콜로, 패킷의 논리적 주소 지정과 경로 설정 방법을 규정한다. 각 계층은 독립적인 프로토콜을 가질 수 있으며, 이러한 프로토콜들의 집합이 프로토콜 스택을 구성한다.
프로토콜은 구체적인 문법, 의미론, 타이밍의 세 가지 핵심 요소로 구성된다. 문법은 데이터의 형식이나 구조를, 의미론은 전송되는 제어 정보의 해석과 적절한 응답을, 타이밍은 데이터 전송 속도와 순서를 정의한다. 이더넷, TCP, HTTP 등은 모두 특정 계층에서 작동하는 구체적인 프로토콜의 예시이다.
계층화 모델에서 프로토콜은 주로 수평적 통신, 즉 동등한 계층 간의 논리적 대화를 담당한다. 반면, 인터페이스는 수직적 통신, 즉 인접한 상하위 계층 사이의 서비스 접근점을 정의한다. 이렇게 프로토콜과 인터페이스를 명확히 분리함으로써, 한 계층의 구현을 변경하더라도 다른 계층에 영향을 미치지 않는 모듈화된 설계가 가능해진다.
7.2. 인터페이스
7.2. 인터페이스
인터페이스는 통신 계층 모델에서 인접한 계층 사이의 상호작용을 정의하는 규칙의 집합이다. 이는 상위 계층이 하위 계층의 서비스를 어떻게 요청하고, 하위 계층이 그 서비스를 어떻게 상위 계층에 제공할지를 명시한다. 인터페이스는 계층 간의 명확한 경계를 설정하여, 각 계층이 독립적으로 설계되고 구현될 수 있도록 하는 핵심 요소이다. 예를 들어, 운영 체제와 응용 프로그램 사이의 API도 일종의 인터페이스로 볼 수 있다.
인터페이스가 잘 정의되면, 한 계층의 내부 구현이 변경되더라도 인터페이스 규칙만 준수한다면 다른 계층에는 영향을 미치지 않는다. 이는 모듈화의 핵심 원리로, 네트워크 프로토콜 스택의 개발과 유지보수를 크게 단순화한다. OSI 모델에서는 서비스 접근점(SAP)을 통해 계층 간 인터페이스가 이루어지며, TCP/IP 모델에서는 소켓과 같은 개념이 응용 계층과 전송 계층 사이의 중요한 인터페이스를 제공한다.
인터페이스는 일반적으로 수행할 작업과 필요한 데이터, 그리고 그 결과를 전달하는 방식으로 구성된다. 이는 하드웨어적 인터페이스와 소프트웨어적 인터페이스로 구분될 수 있으며, 통신 계층 모델에서 주로 논의되는 것은 소프트웨어적, 논리적 인터페이스이다. 표준화된 인터페이스는 다양한 벤더의 네트워크 장비와 소프트웨어가 서로 호환되어 동작할 수 있는 기반을 마련한다.
7.3. 서비스
7.3. 서비스
통신 계층 모델에서 서비스는 한 계층이 그 바로 위 계층에 제공하는 기능의 집합이다. 이는 계층 간의 상호작용을 정의하는 추상적인 개념으로, *무엇을* 제공하는지에 초점을 맞춘다. 예를 들어, 전송 계층이 응용 계층에 제공하는 서비스는 신뢰할 수 있는 데이터 전송, 흐름 제어, 혼잡 제어 등이 될 수 있다. 서비스는 계층 간의 수직적 관계를 규정하며, 상위 계층은 하위 계층이 제공하는 서비스를 이용하여 자신의 기능을 구현한다.
서비스는 일반적으로 서비스 프리미티브라는 기본 연산을 통해 접근된다. 이는 상위 계층이 하위 계층의 서비스를 요청하거나, 하위 계층이 상위 계층에게 어떤 사건을 알리는 데 사용되는 명령이나 신호와 같다. 서비스의 구체적인 구현 방법이나 내부 동작 방식은 숨겨져 있으며, 이는 인터페이스를 통해 정의된다. 따라서 상위 계층은 하위 계층이 어떻게 서비스를 수행하는지 알 필요 없이, 단지 제공되는 서비스의 기능과 인터페이스만 알면 된다.
서비스는 제공되는 특성에 따라 크게 두 가지로 구분된다. 연결 지향형 서비스는 전화 통화와 같이 데이터 전송에 앞서 논리적 연결을 설정하고, 전송 중 순서와 신뢰성을 보장하는 방식이다. 반면, 비연결형 서비스는 우편 발송과 같이 사전 연결 없이 각 데이터 단위를 독립적으로 전송하는 방식이다. OSI 7계층 모델과 TCP/IP 4계층 모델 모두에서 각 계층은 이러한 서비스 유형을 정의하며, 대표적으로 TCP는 연결 지향형 서비스를, UDP는 비연결형 서비스를 제공한다.
이러한 서비스 개념은 네트워크의 모듈화와 계층화의 핵심이다. 각 계층이 명확한 서비스 집합을 제공함으로써, 시스템의 설계와 유지보수가 단순화되고, 다른 계층의 변경에 영향을 최소화할 수 있다. 결국 서비스는 복잡한 네트워크 통신을 계층이라는 논리적 단위로 조직화하는 데 기여하는 기본 메커니즘이다.
